package com.salmon.security.app;

import com.salmon.security.core.social.SalmonSpringSocialConfigurer;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.stereotype.Component;

/**
 * 所有的Bean初始化的时候都需要经过此处，在此处修改浏览器对第三方登录时页面跳转的处理
 */
@Component
public class SpringSocialConfigPostProcessor implements BeanPostProcessor {

    /**
     * 初始化之前的处理
     */
    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        return bean;
    }

    /**
     * 初始化之后的处理
     */
    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        // salmonSocialSecurityConfig 这个bean的注入在 SocialConfig 中配置的
        if(StringUtils.equals(beanName, "salmonSocialSecurityConfig")) { //自定义的bean注册后可以在此修改必要的属性
            SalmonSpringSocialConfigurer configurer = (SalmonSpringSocialConfigurer) bean;
            configurer.signupUrl("/social/signUp");
        }
        return bean;
    }
}
